Detecting First Races using Trace and Replay for Parallel Programs with Random Synchronization
نویسندگان
چکیده
Debugging multithreaded or parallel programs is a hard problem due to unintended nondeterministic results of the program, called data races. Previous race detection techniques have limitations of coverage for synchronization constructs in detecting first races for parallel programs with random synchronizations. We present, in this paper, an efficient twopass algorithm to detect the first races in a particular execution of parallel program, by eliminating independent accesses to make a performance gain and candidate accesses, and then analyzing the traced information with candidate accesses by replaying the program. Therefore, our technique makes the race detection more practical in debugging parallel programs which have random synchronizations.
منابع مشابه
First Race Detection in Parallel Program with Random Synchronization using Trace Information
Detecting data races in multi-threaded programs is a challenging problem in debugging, because the races could reveal nondeterministic program behavior in execution of such programs. Nondeterministic runtime effects of a race are hard to identify and it is difficult to decide whether the reported data races can appear or not in the actual program executions. Previous techniques for detecting ra...
متن کاملDetecting the First Races in Parallel Programs with Ordered Synchronization
Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the programs. Previous on-they techniques to detect races in programs with inter-thread coordination such as ordered synchronization cannot guarantee that the race detected rst is not preceded by events that also participate in a race. This paper pres...
متن کاملRace Condition Detection for Debugging Shared-memory Parallel Programs
This thesis addresses theoretical and practical aspects of the dynamic detecting and debugging of race conditions in shared-memory parallel programs. To reason about race conditions, we present a formal model that characterizes actual, observed, and potential behaviors of the program. The actual behavior precisely represents the program execution, the observed behavior represents partial inform...
متن کاملEfficient Deterministic Replay Using Complete Race Detection
Data races can significantly affect the executions of multi-threaded programs. Hence, one has to recur the results of data races to deterministically replay a multi-threaded program. However, data races are concealed in enormous number of memory operations in a program. Due to the difficulty of accurately identifying data races, previous multi-threaded deterministic record/replay schemes for co...
متن کاملScalable Monitoring Technique for Detecting Races in Parallel Programs
Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the programs. Previous on-they techniques to detect races have a bottleneck caused by the need to check or serialize all accesses to each shared variable in a program that may have nested parallelism with barrier synchronization. The new scalable moni...
متن کامل